package main

/**
协程管道定时任务的应用
	1、定时执行某个任务，类似延时消息队列
	2、或者周期性的执行某个任务，类似定期同步某些数据

time.NewTimer	C <-chan Time	r runtimeTimer

func startTimer(*runtimeTimer)
func stopTimer(*runtimeTimer) bool
func resetTimer(func,int64) boll
func modTimer(t *.....)

*/

import (
	"fmt"
	"time"
)

func main() {

	fmt.Println("当前时间：", time.Now())

	// 方式一
	timer := time.NewTimer(time.Second * 3)
	t := <-timer.C // time.C 是一个只读的管道
	fmt.Println(t)

	// 方式二
	t2 := <-time.After(time.Second * 3) // 源码可见 实际上返回的就是 return NewTimer(d).C
	fmt.Println(t2)

	// 方法三
	time.Sleep(time.Second * 3)
	fmt.Println(time.Now())
}
